WPF DataGrid 获取选中一行或者多行的细节处理 您所在的位置:网站首页 wpf datagrid 选中行右键 WPF DataGrid 获取选中一行或者多行的细节处理

WPF DataGrid 获取选中一行或者多行的细节处理

2023-03-22 04:06| 来源: 网络整理| 查看: 265

        WPF中DataGrid使用时,需要将其SelectedItem转换成DataRowView进行操作,然而SelectedItem与SelectedItems的取值跟SelectionUnit与SelectionMode两个属性不同时有所变化。

一、当DataGrid.SelectionUnit等于DataGridSelectionUnit.FullRow时,获取选中一行与多行的方法:

//选中多行int count = DataGrid.SelectedItems.Count;

DataRowView[] drv = new DataRowView[count];

for (int i = 0; i < count; i++) { drv[i] = DataGrid.SelectedItems[i] as DataRowView; }

return drv;

//选中一行DataGrid.SelectedItem as DataRowView

二、但当DataGrid.SelectionUnit 的属性是Cell或者CellOrRowHeader时,并且SelectionMode的值为 Extented时,这样处理就不太好。因为假如选中的是Cell 则SelectedItem的值为null。所以可通过Cell来统一处理,无论SelectionUnit 的值是什么,总有选中的单元格,通过单元格确定该行。

private DataRowView GetSelectedRow() { /*优化 * 无论 DataGrid的SelectionUnit跟SelectionMode两个属性取任何值 * 都存在选中的单元格 * 可以根据选中的单元格做统一处理,获取选中的行 * GetSelectedRows()方法获取选中多行原理相同 */ if (DataGrid != null && DataGrid.SelectedCells.Count != 0) { //只选中一个单元格时:返回单元格所在行 //选中多个时:返回第一个单元格所在行 return DataGrid.SelectedCells[0].Item as DataRowView; }

return null; }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有